package com.freewater.cargotracker.infrastructure.persistence.mybatis.dbobject;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class CargoPO {

    private Long id;
    private String trackingID;
    private LocationPO origin;
    private LocationPO specOrigin;
    private LocationPO specDestination;
    private LocalDateTime specArrivalDeadline;
    private Double size;
    private int version;
    private transient List<LegPO> legs = new ArrayList<>();
    private transient Map<String, CustomerPO> customers = new HashMap<>();

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTrackingID() {
        return trackingID;
    }

    public void setTrackingID(String trackingID) {
        this.trackingID = trackingID;
    }

    public LocationPO getOrigin() {
        return origin;
    }

    public void setOrigin(LocationPO origin) {
        this.origin = origin;
    }

    public LocationPO getSpecOrigin() {
        return specOrigin;
    }

    public void setSpecOrigin(LocationPO specOrigin) {
        this.specOrigin = specOrigin;
    }

    public LocationPO getSpecDestination() {
        return specDestination;
    }

    public void setSpecDestination(LocationPO specDestination) {
        this.specDestination = specDestination;
    }

    public LocalDateTime getSpecArrivalDeadline() {
        return specArrivalDeadline;
    }

    public void setSpecArrivalDeadline(LocalDateTime specArrivalDeadline) {
        this.specArrivalDeadline = specArrivalDeadline;
    }

    public Map<String, CustomerPO> getCustomers() {
        return customers;
    }

    public void setCustomers(Map<String, CustomerPO> customers) {
        this.customers = customers;
    }

    public List<LegPO> getLegs() {
        return legs;
    }

    public void setLegs(List<LegPO> legs) {
        this.legs = legs;
    }

    public Double getSize() {
        return size;
    }

    public void setSize(Double size) {
        this.size = size;
    }

    public int getVersion() {
        return version;
    }

    public void setVersion(int version) {
        this.version = version;
    }
}
